<!--
 * @Descripttion: 
 * @Version: 
 * @Author: gaohj
 * @Date: 2023-01-04 14:11:10
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2023-01-04 14:29:41
-->
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /* 
        
        规律:

 j   第几轮    跟谁交换     假设最小值的索引     从下标几开始循环  

 0    1	       0				0				1								

 1    2		   1                1			    2

 2    3		   2                2			    3
        
        
        */
        var arr = [9, 1, 18, 23, 5, 12, 7, 26, 14, 3, 22, 15];
        console.log('原始数组', arr);

        //第一轮
        // // 假设下标[0]是最小的
        // var minIndex = 0;
        // for (var i = 1; i < arr.length; i++) {
        //     // i是下标
        //     if (arr[i] < arr[minIndex]) {
        //         minIndex = i;
        //     }
        // }
        // // 循环结束 minIndex就是最小值的下标
        // // 交换[0]

        // var temp = arr[0];
        // arr[0] = arr[minIndex];
        // arr[minIndex] = temp;
        // console.log(`第1轮结束`, arr);


        //第二轮

        // 假设下标[1]是最小的
        // var minIndex = 1;
        // for (var i = 2; i < arr.length; i++) {
        //     // i是下标
        //     if (arr[i] < arr[minIndex]) {
        //         minIndex = i;
        //     }
        // }
        // // 循环结束 minIndex就是最小值的下标
        // // 交换[1]

        // var temp2 = arr[1];
        // arr[1] = arr[minIndex];
        // arr[minIndex] = temp2;
        // console.log('第二轮结束', arr);

        //第三轮

        // // 假设下标[1]是最小的
        // var minIndex = 2;
        // for (var i = 3; i < arr.length; i++) {
        //     // i是下标
        //     if (arr[i] < arr[minIndex]) {
        //         minIndex = i;
        //     }
        // }
        // // 循环结束 minIndex就是最小值的下标
        // // 交换[2]

        // var temp3 = arr[2];
        // arr[2] = arr[minIndex];
        // arr[minIndex] = temp3;
        // console.log('第三轮结束', arr);



        //需要构建出多少轮  最多 length-1轮
        for (var j = 0; j < arr.length - 1; j++) {
            var minIndex = j;
            for (var i = j+1; i < arr.length; i++) {
                // i是下标
                if (arr[i] < arr[minIndex]) {
                    minIndex = i;
                }
            }
            // 循环结束 minIndex就是最小值的下标
            // 交换[2]

            var temp3 = arr[j];
            arr[j] = arr[minIndex];
            arr[minIndex] = temp3;
            console.log(`第${j+1}轮结束`, arr);
        }
    </script>
</body>

</html>